介紹完監督式學習與非監督式學習,我們來介紹強化學習!
Q learning為強化學習,根據wiki的描述
Q-學習就是要記錄下學習過的政策,因而告訴智能體什麼情況下採取什麼行動會有最大的獎勵值。
我們使用一個經典的例子來解釋。
本篇圖片皆來自http://mnemstudio.org/path-finding-q-learning-tutorial.htm
這張圖片是一個屋子的平面圖,有編號0~4的房間,5則是屋子外面。
我們的目標是走出屋子外面(5)。
現在我們給予每次的行動一個獎勵值,每次行動可以從某一個房間,到達另一個房間。
假設我們從1走到5,那麼我們得到獎勵100。
現在我們依照這個獎勵表,把Q表初始值填上去,如果無法做到的行動(如從1走到2)就把獎勵設為-1。
現在開始我們的Q learning!
η為學習率,r為獎勵值,γ為disconut factor
Q(s',a')為下一步的Q值
為了簡化計算過程,我們把Q表先都設為0。
假設我們的起點是房間1(s=1),現在Action隨機選一個選到5。
假設$η=0.1,γ=0.8,Q(s,a)=Q(1,5)=0,r(1,5)=100,Max (Q(5,1), Q(5,4), Q(5,5))=0$
接著更新Q表,$Q(1,5)=0+0.1*(100+0.8*0-0)=10$
且因為走到5了,因此episode 1終止。
假設我們的起點是房間3(s=3),現在Action隨機選一個選到1(因為Q值都一樣才隨機選擇,如果Q值不同時找最大的Q值走)。
$r(3,1)=0,Q(3,1)=0$
$Max (Q(1,3), Q(1,5) ) = Max(0,10)=10$
接著我們更新Q表。
Q(3,1)=0+0.1*(0+0.8*10-0)=0.8
那麼新的Q表長這樣
接著繼續做,直到走到5為止,又或者到達最大步數。
今天學習了Q learning,會有Q表,且透過與環境的探索慢慢更新Q表,學習最佳的方法。
http://mnemstudio.org/path-finding-q-learning-tutorial.htm
Q learning